home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / latex209 / contrib / elsevier / elsart.cls < prev    next >
Text File  |  1995-01-15  |  46KB  |  1,143 lines

  1. %% 
  2. %% This is file `eslart.cls', generated on <1995/1/16> 
  3. %% with the docstrip utility (2.2i).
  4. %% 
  5. %% The original source files were:
  6. %% 
  7. %% esl.dtx  (with options: `package,eslart,ONECOL,QUOTEABS')
  8. %% 
  9. %% IMPORTANT NOTICE:
  10. %% You are not allowed to distribute this file.
  11. %% For distribution of the original source see
  12. %% the copyright notice in the file esl.dtx .
  13. %% 
  14. \def\esp@fileversion{2e-1.15}
  15. \def\esp@filedate{1994/01/12}
  16. %% esl.dtx Copyright (C) 1994 Elsevier Science
  17. \def\@shortjnl{\relax}
  18.  \def\@journal{Elsevier Preprint} \def\@company{}
  19.   \def\@issn{000-0000}
  20.   \def\@shortjid{eslart}
  21.  \NeedsTeXFormat{LaTeX2e}
  22.  \ProvidesClass{\@shortjid}
  23.  [\esp@filedate, \esp@fileversion: \@journal]
  24.  
  25. \DeclareOption{12pt}{}
  26. \DeclareOption{11pt}{}
  27. \DeclareOption{10pt}{}
  28. \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
  29. \DeclareOption{twoside}{\@twosidetrue  \@mparswitchtrue}
  30. \@twocolumnfalse
  31. \newif\if@TwoColumn
  32. \DeclareOption{onecolumn}{\@twocolumnfalse\@TwoColumnfalse}
  33. \DeclareOption{twocolumn}{\@twocolumntrue\@TwoColumntrue}
  34. \def\@docty{XX}
  35. \DeclareOption{letter}{%
  36.  \def\@docty{SN}%
  37. }
  38. \DeclareOption{proc}{%
  39.  \def\@docty{PP}%
  40. }
  41. \DeclareOption{erratum}{%
  42.  \def\@docty{EN}\gdef\@articletype{Erratum}%
  43. }
  44. \newif\if@draft
  45. \DeclareOption{draft}{%
  46.   \@drafttrue
  47.   \def\query{\marginpar{???}}%       % mark author queries in proof
  48.   \overfullrule 5\p@                  % to indicate overfull boxes
  49. }
  50. \DeclareOption{final}{%
  51.   \@draftfalse
  52.   \def\query{}%
  53.   \overfullrule \z@
  54. }
  55. \let\snm\relax \let\cty\relax \let\cny\relax
  56. \DeclareOption{capcas}{\typeout {* `capcas' option ignored *}}
  57. \newif\if@ussrhead \@ussrheadfalse
  58. \DeclareOption{ussrhead}{\@ussrheadtrue}
  59. \newif\if@debug \@debugfalse
  60. \DeclareOption{debug}{\typeout{* Debugging is on *}\@debugtrue
  61.               \errorcontextlines=1000}
  62. \newif\if@seceqn
  63. \@seceqnfalse                             % Default: equation numbering is not
  64. \DeclareOption{seceqn}{\@seceqntrue}      % reset at beginning of each section
  65. \newif\if@secthm
  66. \@secthmfalse
  67. \DeclareOption{secthm}{\@secthmtrue}
  68. \newif\if@nameyear
  69. \@nameyearfalse
  70. \DeclareOption{nameyear}{\@nameyeartrue}
  71.  \ExecuteOptions{oneside}
  72.  \ExecuteOptions{onecolumn,final}
  73. \ProcessOptions
  74. \def\@pagenumprefix{}
  75. \def\author@font{}
  76. \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
  77. \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
  78. \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
  79. \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
  80. \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
  81. \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
  82. \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
  83. \def\partname{Part}
  84. \def\contentsname{Contents}
  85. \def\listfigurename{List of Figures}
  86. \def\listtablename{List of Tables}
  87. \def\refname{References}
  88. \def\indexname{Index}
  89. \def\figurename{Fig.}
  90. \def\tablename{Table}
  91. \def\abstractname{}
  92. \lineskip 1\p@
  93. \normallineskip 1\p@
  94. \def\baselinestretch{1}
  95. \frenchspacing
  96. \def\@overtitleskip{69pt}
  97. \def\@bibliosize{\small}
  98. \def\@historysize{\small}
  99. \def\@keywordsize{\small}
  100. \def\@titlesize{\Large}
  101. \def\@authorsize{\large}
  102. \def\@keywordheading{{\it Key words: \ }}
  103. \def\@addressstyle{\small\itshape}
  104. \def\@captionsize{\small}
  105. \def\@abstractsize{\fontsize{\@ixpt}{11pt}\selectfont}
  106. \def\@articletypesize{\fontsize{\@xiiipt}{13pt}\selectfont}
  107. \def\normalsize{\@setfontsize\normalsize\@xiipt{14.5}%
  108. \abovedisplayskip 12\p@ \@plus 2\p@ \@minus 2\p@%
  109. \belowdisplayskip \abovedisplayskip
  110. \abovedisplayshortskip \z@ \@plus 2\p@%
  111. \belowdisplayshortskip 3.5\p@ \@plus 2\p@ \@minus 2\p@
  112. \let\@listi\@listI}
  113. \def\small{\@setfontsize\small\@xipt{13.6}%
  114. \abovedisplayskip 11\p@ plus3\p@ minus6\p@
  115. \belowdisplayskip \abovedisplayskip
  116. \abovedisplayshortskip  \z@ plus3\p@
  117. \belowdisplayshortskip  6.5\p@ plus3.5\p@ minus3\p@
  118. \def\@listi{\leftmargin\leftmargini
  119.  \parsep 4.5\p@ plus2\p@ minus\p@ \itemsep \parsep
  120.             \topsep 9\p@ plus3\p@ minus5\p@}}
  121. \let\footnotesize=\small
  122. \def\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
  123. \def\tiny{\@setfontsize\tiny\@vipt{7}}
  124. \def\large{\@setfontsize\large\@xivpt{18}}
  125. \def\Large{\@setfontsize\Large\@xviipt{22}}
  126. \def\LARGE{\@setfontsize\LARGE\@xxpt{22}}
  127. \def\huge{\@setfontsize\huge\@xxvpt{27}}
  128. \let\Huge=\huge
  129. \def\baselinestretch{1}
  130. \normalsize                                % Choose the normalsize font.
  131. \newdimen\@bls                              % Several dimensions are
  132. \@bls=\baselineskip                         % expressed in terms of this.
  133. \if@twoside                 % Values for two-sided printing:
  134.    \oddsidemargin   20\p@    %   Left margin on odd-numbered pages.
  135.    \evensidemargin  20\p@    %   Left margin on even-numbered pages.
  136.    \marginparwidth  10\p@    %   \@Width of marginal notes.
  137. \else                       % Values for one-sided printing:
  138.    \oddsidemargin   20\p@    %   Left margin on odd-numbered pages.
  139.    \evensidemargin  20\p@    %   Left margin on even-numbered pages.
  140.    \marginparwidth   2pc
  141. \fi
  142. \marginparsep 20\p@          % Horizontal space between outer margin and
  143.                             % marginal note
  144. \topmargin \z@           %    Nominal distance from top of page to top of
  145.                          %    box containing running head.
  146. \headheight  \z@         %    \@Height of box containing running head.
  147. \headsep     \z@         %    Space between running head and text.
  148.  \footskip 40\p@
  149. \bigskipamount=\@bls \@plus 0.3\@bls \@minus 0.3\@bls % 1/1 line
  150. \medskipamount=0.5\bigskipamount                  % 1/2 line
  151. \smallskipamount=0.25\bigskipamount               % 1/4 line
  152. \textheight 44\baselineskip  % \@Height of text (including footnotes and figures,
  153. \advance\textheight\topskip  % excluding running head and foot).
  154. \textwidth 33pc              % \@Width of text line.
  155.                              % For two-column mode:
  156. \columnsep 2pc               %   Space between columns
  157. \columnseprule \z@           %   \@Width of rule between columns.
  158.  \footnotesep 8.4\p@
  159. \skip\footins 12\p@ \@plus  8\p@          % Space between last line of text and
  160.                                       % top of first footnote.
  161. \floatsep 8\p@ \@plus 4\p@ \@minus 2\p@ % Space between adjacent floats moved
  162.                                          % to top or bottom of text page.
  163. \textfloatsep 8\p@ \@plus 4\p@ \@minus 2\p@ % Space between main text and floats
  164.                                          % at top or bottom of page.
  165. \intextsep 8\p@ \@plus 4\p@ \@minus 2\p@ % Space between in-text figures and
  166.                                          % text.
  167. \dblfloatsep      8\p@ \@plus 4\p@ \@minus 4\p@ % Same as \floatsep for double-column
  168.                                          % figures in two-column mode.
  169. \dbltextfloatsep 12\p@ \@plus 4\p@ \@minus 4\p@ % \textfloatsep for double-column
  170.                                          % floats.
  171. \@fptop \z@ \@plus 1fil    % Stretch at top of float page/column. (Must be
  172.                          % \z@ \@plus ...)
  173. \@fpsep 8\p@ \@plus 2fil    % Space between floats on float page/column.
  174. \@fpbot \z@ \@plus 1fil    % Stretch at bottom of float page/column. (Must be
  175.                          % \z@ \@plus ... )
  176. \@dblfptop \z@ \@plus 1fil % Stretch at top of float page. (Must be \z@ \@plus ...)
  177. \@dblfpsep 8\p@ \@plus 2fil % Space between floats on float page.
  178. \@dblfpbot \z@ \@plus 1fil % Stretch at bottom of float page. (Must be
  179.                          % \z@ \@plus ... )
  180. \marginparpush 5\p@       % Minimum vertical separation between two marginal
  181.                          % notes.
  182. \parskip 1pc \@plus 1\p@          % Extra vertical space between paragraphs.
  183. \parindent \z@                     % Indentation of each paragraph.
  184. \newskip\eqntopsep                    % Extra vertical space, in addition to
  185.  \eqntopsep 12\p@ \@plus 2\p@ \@minus 2\p@ %\parskip, added above and below
  186. \newdimen\eqnarraycolsep            % Half the space between columns
  187. \eqnarraycolsep 1\p@                 % in an \eqnarray.
  188. \@lowpenalty   51      % Produced by \nopagebreak[1] or \nolinebreak[1]
  189. \@medpenalty  151      % Produced by \nopagebreak[2] or \nolinebreak[2]
  190. \@highpenalty 301      % Produced by \nopagebreak[3] or \nolinebreak[3]
  191. \@beginparpenalty -\@lowpenalty    % Before a list or paragraph environment.
  192. \@endparpenalty   -\@lowpenalty    % After a list or paragraph environment.
  193. \@itempenalty     -\@lowpenalty    % Between list items.
  194. \def\section{\@startsection{section}{1}{\z@}{1.5\@bls
  195.   \@plus .4\@bls \@minus .1\@bls}{\@bls}{\normalsize\bfseries}}
  196. \def\subsection{\@startsection{subsection}{2}{\z@}{\@bls
  197.   \@plus .3\@bls \@minus .1\@bls}{\@bls}{\normalsize\itshape}}
  198. \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{\@bls
  199.   \@plus .2\@bls}{0.0001pt}{\normalsize\itshape}}
  200. \def\paragraph{\@startsection{paragraph}{4}{\z@}{3.25ex plus
  201.   2ex \@minus 0.2ex}{-1em}{\normalsize\bfseries}}
  202. \setcounter{secnumdepth}{3}
  203. \def\half@em{\hskip 0.5em}
  204. \def\lb@part{PART \thepart.\half@em}
  205.   \def\lb@empty@part{PART \thepart}
  206. \def\lb@section{\thesection.\half@em}
  207.   \def\lb@empty@section{\thesection}
  208. \def\lb@subsection{\thesubsection.\half@em}
  209.   \def\lb@empty@subsection{\thesubsection}
  210. \def\lb@subsubsection{\thesubsubsection.\half@em}
  211.   \def\lb@empty@subsubsection{\thesubsubsection}
  212. \def\lb@paragraph{\theparagraph.\half@em}
  213.   \def\lb@empty@paragraph{\theparagraph}
  214. \def\lb@subparagraph{\thesubparagraph.\half@em}
  215.   \def\lb@empty@subparagraph{\thesubparagraph}
  216. \def\head@format#1#2{#2}
  217. \def\head@style{\interlinepenalty\@M
  218.   \hyphenpenalty\@M \exhyphenpenalty\@M
  219.   \rightskip \z@ \@plus 0.5\hsize \relax
  220.   }
  221. \def\app@number#1{\setcounter{#1}{0}%
  222.   \@addtoreset{#1}{section}%
  223.   \@namedef{the#1}{\thesection.\arabic{#1}}}
  224. \def\appendix{\@ifstar{\appendix@star}{\appendix@nostar}}
  225. \def\appendix@nostar{%
  226.   \def\lb@section{Appendix \thesection.\half@em}
  227.   \def\lb@empty@section{Appendix \thesection}
  228.   \setcounter{section}{0}\def\thesection{\Alph{section}}%
  229.   \setcounter{subsection}{0}%
  230.   \setcounter{subsubsection}{0}%
  231.   \setcounter{paragraph}{0}%
  232.   \app@number{equation}\app@number{figure}\app@number{table}}
  233. \def\appendix@star{%
  234.   \def\lb@section{Appendix}\let\lb@empty@section\lb@section
  235.   \setcounter{section}{0}\def\thesection{\Alph{section}}%
  236.   \setcounter{subsection}{0}%
  237.   \setcounter{subsubsection}{0}%
  238.   \setcounter{paragraph}{0}%
  239.   \app@number{equation}\app@number{figure}\app@number{table}}
  240. \def\ack{\section*{%
  241. Acknowledgement
  242.   }
  243.   \addtocontents{toc}{\protect\vspace{6pt}}%
  244.   \addcontentsline{toc}{section}{%
  245. Acknowledgement
  246. }}
  247. \@namedef{ack*}{\par\vskip 3.0ex \@plus 1.0ex \@minus 1.0ex}
  248. \let\endack\par
  249. \@namedef{endack*}{\par}
  250. \newdimen\labelwidthi
  251. \newdimen\labelwidthii
  252. \newdimen\labelwidthiii
  253. \newdimen\labelwidthiv
  254. \def\normal@labelsep{0.5em}
  255. \labelsep\normal@labelsep
  256. \settowidth{\labelwidthi}{(iii)}
  257. \settowidth{\labelwidthii}{(d)}
  258. \settowidth{\labelwidthiii}{(iii)}
  259. \settowidth{\labelwidthiv}{(M)}
  260. \leftmargini\labelwidthi    \advance\leftmargini\labelsep
  261. \leftmarginii\labelwidthii  \advance\leftmarginii\labelsep
  262. \leftmarginii\labelwidthiii \advance\leftmarginiii\labelsep
  263. \leftmarginii\labelwidthiv  \advance\leftmarginiv\labelsep
  264. \def\setleftmargin#1#2{\settowidth{\@tempdima}{#2}\labelsep\normal@labelsep
  265.   \csname labelwidth#1\endcsname\@tempdima
  266.   \@tempdimb\@tempdima \advance\@tempdimb\labelsep
  267.   \csname leftmargin#1\endcsname\@tempdimb}
  268. \def\@listI{\leftmargin\leftmargini
  269.   \labelwidth\labelwidthi \labelsep\normal@labelsep
  270.   \topsep \z@ \partopsep\z@ \parsep\z@ \itemsep\z@
  271.   \listparindent 1em}
  272. \def\@listii{\leftmargin\leftmarginii
  273.   \labelwidth\labelwidthii \labelsep\normal@labelsep
  274.   \topsep\z@ \partopsep\z@ \parsep\z@ \itemsep\z@
  275.   \listparindent 1em}
  276. \def\@listiii{\leftmargin\leftmarginiii
  277.   \labelwidth\labelwidthiii \labelsep\normal@labelsep
  278.   \topsep\z@ \partopsep\z@ \parsep\z@ \itemsep\z@
  279.   \listparindent 1em}
  280. \def\@listiv{\leftmargin\leftmarginiv
  281.   \labelwidth\labelwidthiv \labelsep\normal@labelsep
  282.   \topsep\z@ \partopsep\z@ \parsep\z@ \itemsep\z@
  283.   \listparindent 1em}
  284. \let\@listi\@listI
  285. \@listi
  286. \def\left@label#1{{#1}\hss}
  287. \def\right@label#1{\hss\llap{#1}}
  288. \def\thick@label#1{\hspace\labelsep #1}
  289. \newcount\@maxlistdepth
  290. \@maxlistdepth=2
  291. \def\labelitemi{--}
  292. \def\labelitemii{$\cdot$}
  293. \def\labelenumi{(\theenumi)}        \def\theenumi{\roman{enumi}}
  294. \def\labelenumii{(\theenumii)}      \def\theenumii{\alph{enumii}}
  295. \def\enumerate{%
  296.   \ifnum \@enumdepth >\@maxlistdepth
  297.     \@toodeep
  298.   \else
  299.     \advance\@enumdepth \@ne
  300.     \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
  301.     \list{\csname label\@enumctr\endcsname}%
  302.        {\usecounter{\@enumctr}
  303.        \let\makelabel=\right@label}
  304.   \fi}
  305. \def\itemize{%
  306.   \ifnum \@itemdepth >\@maxlistdepth
  307.     \@toodeep
  308.   \else
  309.     \advance\@itemdepth \@ne
  310.     \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
  311.      \setleftmargin{i}{--}%
  312.      \setleftmargin{ii}{$\cdot$}%
  313.     \list{\csname\@itemitem\endcsname}%
  314.        {\let\makelabel\right@label}
  315.   \fi}
  316. \def\verse{\let\\=\@centercr
  317.   \list{}{\itemsep\z@
  318.   \itemindent \z@
  319.   \listparindent\z@
  320.   \rightmargin 1em
  321.   \leftmargin \rightmargin}\item[]}
  322. \let\endverse\endlist
  323. \def\quotation{\list{}{\itemindent\z@
  324.  \leftmargin 1em \rightmargin \z@
  325.   \parsep \z@ \@plus 1pt}\item[]}
  326. \let\endquotation=\endlist
  327. \def\quote{\list{}{\itemindent\z@
  328.    \leftmargin 1em \rightmargin \z@}%
  329. \item[]}
  330. \let\endquote=\endlist
  331. \def\descriptionlabel#1{\hspace\labelsep \bfseries #1}
  332. \def\description{\list{}{\labelwidth\z@
  333.   \leftmargin 1em \itemindent-\leftmargin
  334.   \let\makelabel\descriptionlabel}}
  335. \let\enddescription\endlist
  336. \def\@atfmtname{atlplain}
  337. \ifx\fmtname\@atfmtname
  338.  \def\neq{\not\nobreak\mkern -2mu =}%
  339.  \let\ne\neq
  340. \fi
  341. \def\operatorname#1{\mathop{\mathrm{#1}}\nolimits}
  342. \def\lefteqn#1{\hbox to\z@{$\displaystyle {#1}$\hss}}
  343. \newskip\eqnbaselineskip % Standard interline spacing in an {eqnarray}
  344. \jot=2\p@
  345. \newskip\eqnlineskip     % Minimal space between the bottom of
  346.                          % a line and the top of the next line.
  347. \eqnbaselineskip=14\p@  \eqnlineskip=2\p@
  348. \newdimen\mathindent
  349. \if@TwoColumn
  350.   \mathindent 0em
  351. \else
  352.   \mathindent 2em
  353. \fi
  354. \def\[{\relax\ifmmode\@badmath
  355.   \else%\bgroup removed on request from BW (1993-05-17)
  356.   \@beginparpenalty\predisplaypenalty
  357.   \@endparpenalty\postdisplaypenalty
  358.   \begin{trivlist}\@topsep \eqntopsep       % used by first \item
  359.    \@topsepadd \eqntopsep                   % used by \@endparenv
  360.   \item[]\leavevmode
  361.    \hbox to\linewidth\bgroup\hfil $ \displaystyle
  362.   \hskip\mathindent\bgroup\fi}
  363. \def\]{\relax\ifmmode \egroup $\hfil \egroup
  364.   \end{trivlist}% \egroup removed on request from BW (1993-05-17)
  365.   \else \@badmath \fi}
  366. \def\equation{\@beginparpenalty\predisplaypenalty
  367.   \@endparpenalty\postdisplaypenalty
  368. \refstepcounter{equation}\trivlist
  369.    \@topsep \eqntopsep                      % used by first \item
  370.    \@topsepadd \eqntopsep                   % used by \@endparenv
  371.    \item[]\leavevmode
  372.    \hbox to\linewidth\bgroup \hfil $ \displaystyle \hskip\mathindent\bgroup}
  373. \def\endequation{\egroup$\hfil \displaywidth\linewidth
  374.   \@eqnnum\egroup \endtrivlist}
  375. \def\eqnarray{%
  376.   \par                                               %BW
  377.   \noindent                                          %BW
  378.   \baselineskip\eqnbaselineskip\lineskip\eqnlineskip %BW
  379.   \lineskiplimit\eqnlineskip                         %BW
  380.   \stepcounter{equation}%
  381.   \let\@currentlabel=\theequation
  382.   \global\@eqnswtrue
  383.   \global\@eqcnt\z@ \tabskip\mathindent \let\\=\@eqncr
  384.   \abovedisplayskip\eqntopsep\ifvmode\advance\abovedisplayskip\partopsep\fi
  385.   \belowdisplayskip\abovedisplayskip
  386.   \belowdisplayshortskip\abovedisplayskip
  387.   \abovedisplayshortskip\abovedisplayskip
  388.   $$\halign to \displaywidth\bgroup\@eqnsel
  389.     \pre@coli$\displaystyle\tabskip\z@{##}$\post@coli
  390.     &\global\@eqcnt\@ne
  391.     \pre@colii$\displaystyle{##}$\post@colii
  392.     &\global\@eqcnt\tw@
  393.     \pre@coliii $\displaystyle\tabskip\z@{##}$\post@coliii
  394.     \tabskip\@centering&\llap{##}\tabskip\z@\cr}
  395. \def\endeqnarray{\@@eqncr\egroup
  396.  \global\advance\c@equation\m@ne$$\global\@ignoretrue }
  397. \def\pre@coli{\hskip\@centering}              \def\post@coli{}
  398. \def\pre@colii{\hskip 2\eqnarraycolsep \hfil} \def\post@colii{\hfil}
  399. \def\pre@coliii{\hskip 2\eqnarraycolsep}      \def\post@coliii{\hfil}
  400. \arraycolsep 2\p@         % Half the space between columns in array environment.
  401. \tabcolsep 6\p@           % idem in tabular environment.
  402. \def\arraystretch{1.5}   % More vertical space in tables
  403. \arrayrulewidth 0.4\p@    % \@Width of rules and space between adjacent
  404. \doublerulesep 2\p@       % rules in any of these two environments.
  405. \tabbingsep \labelsep   % Space used by the \' command.  (See LaTeX{} manual.)
  406. \skip\@mpfootins = 6\p@ \@plus 2\p@   % Space between last line of text and
  407.                                   % top of first footnote.
  408. \fboxsep = 7\p@    % Space left between box and text by \fbox and \framebox.
  409. \fboxrule = 0.4\p@ % \@Width of rules in box made by \fbox and \framebox.
  410. \newcounter{section}
  411. \newcounter{subsection}[section]
  412. \newcounter{subsubsection}[subsection]
  413. \newcounter{paragraph}[subsubsection]
  414. \newcounter{subparagraph}[paragraph]
  415. \if@seceqn
  416.  \@addtoreset{equation}{section}
  417.  \def\theequation{\arabic{section}.\arabic{equation}}
  418. \else
  419.   \def\theequation{\arabic{equation}}
  420. \fi
  421. \def\thesection      {\arabic{section}}
  422. \def\thesubsection   {\thesection.\arabic{subsection}}
  423. \def\thesubsubsection{\thesubsection.\arabic{subsubsection}}
  424. \def\theparagraph    {\thesubsubsection.\arabic{paragraph}}
  425. \def\thesubparagraph {\theparagraph.\arabic{subparagraph}}
  426. \@addtoreset{section}{part} % reset section numbers at beginning of part
  427.  
  428. \def\qed{\relax\ifmmode\hskip2em \Box\else\unskip\nobreak\hskip1em $\Box$\fi}
  429. \def\proof@headerfont{\upshape\bfseries}
  430. \gdef\theorem@headerfont{\itshape}
  431. \gdef\th@plain{\upshape
  432.   \def\@begintheorem##1##2{\item[\hskip\labelsep
  433.     {\theorem@headerfont ##1\ ##2.}]}%
  434.   \def\@opargbegintheorem##1##2##3{\item[\hskip\labelsep
  435.     {\theorem@headerfont ##1\ ##2.}\ {\upshape (##3).}]}}
  436. \gdef\th@definition{\upshape
  437.   \def\@begintheorem##1##2{\item[\hskip\labelsep
  438.     {\theorem@headerfont ##1\ ##2.}]}%
  439.   \def\@opargbegintheorem##1##2##3{\item[\hskip\labelsep
  440.     {\theorem@headerfont ##1\ ##2.}\ {\upshape (##3).}]}}
  441.  
  442. \newenvironment{pf}%
  443.   {\par\addvspace{\@bls \@plus 0.5\@bls \@minus 0.1\@bls}\noindent
  444.    {\bfseries\proofname}\enspace\ignorespaces}%
  445.   {\par\addvspace{\@bls \@plus 0.5\@bls \@minus 0.1\@bls}}
  446. \def\proofname{PROOF.}
  447. \@namedef{pf*}#1{\par\begingroup\def\proofname{#1}\pf\endgroup\ignorespaces}
  448. \expandafter\let\csname endpf*\endcsname=\endpf
  449. \if@secthm
  450.   \newtheorem{thm}{Theorem}[section]
  451.   \@addtoreset{thm}{section}
  452. \else
  453.   \newtheorem{thm}{Theorem}
  454. \fi
  455. \newtheorem{cor}[thm]{Corollary}
  456. \newtheorem{lem}[thm]{Lemma}
  457. \newtheorem{claim}[thm]{Claim}
  458. \newtheorem{axiom}[thm]{Axiom}
  459. \newtheorem{conj}[thm]{Conjecture}
  460. \newtheorem{fact}[thm]{Fact}
  461. \newtheorem{hypo}[thm]{Hypothesis}
  462. \newtheorem{assum}[thm]{Assumption}
  463. \newtheorem{prop}[thm]{Proposition}
  464. \newtheorem{crit}[thm]{Criterion}
  465. \newtheorem{defn}[thm]{Definition}
  466. \newtheorem{exmp}[thm]{Example}
  467. \newtheorem{rem}[thm]{Remark}
  468. \newtheorem{prob}[thm]{Problem}
  469. \newtheorem{prin}[thm]{Principle}
  470. \newtheorem{alg}{Algorithm}
  471. \long\def\@makealgocaption#1#2{\vskip 2ex \small
  472.   \hbox to \hsize{\parbox[t]{\hsize}{{\bfseries #1.} #2}}}
  473. \newcounter{algorithm}
  474. \def\thealgorithm{\@arabic\c@algorithm}
  475. \def\fps@algorithm{tbp}
  476. \def\ftype@algorithm{4}
  477. \def\ext@algorithm{lof}
  478. \def\fnum@algorithm{Algorithm \thealgorithm}
  479. \def\algorithm{\let\@makecaption\@makealgocaption\@float{algorithm}}
  480. \let\endalgorithm\end@float
  481. \newtheorem{note}{Note}
  482. \newtheorem{summ}{Summary}
  483. \newtheorem{case}{Case}
  484. \def\@pnumwidth{2.55em}
  485. \def\@tocrmarg{2.55em \@plus 5em}
  486. \def\@dotsep{-2.5}
  487. \setcounter{tocdepth}{2}
  488. \def\tableofcontents{%
  489.   \section*{\contentsname}%
  490.   \@starttoc{toc}}
  491. \def\l@section{\@dottedtocline{1}{0.0em}{1.40em}}
  492. \def\l@subsection{\@dottedtocline{2}{1.40em}{2.24em}}
  493. \def\l@subsubsection{\@dottedtocline{3}{2.24em}{3.09em}}
  494. \def\thebibliography{%
  495.   \@startsection{section}{1}{\z@}{20\p@ \@plus 8\p@ \@minus 4pt}
  496.   {\@bls}{\normalsize\bfseries}*{\refname}%
  497.   \addcontentsline{toc}{section}{\refname}%
  498.   \@thebibliography}
  499. \let\endthebibliography=\endlist
  500. \def\@thebibliography#1{\@bibliosize
  501.   \list{\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}
  502.   \if@nameyear
  503.     \labelwidth\z@ \labelsep\z@ \leftmargin\parindent
  504.     \itemindent-\parindent
  505.   \else
  506.     \labelsep 3\p@ \itemindent\z@
  507.     \leftmargin\labelwidth \advance\leftmargin\labelsep
  508. \fi
  509.      \itemsep 0.3\@bls \@plus 0.1\@bls \@minus 0.1\@bls
  510.     \usecounter{enumiv}\let\p@enumiv\@empty
  511.     \def\theenumiv{\arabic{enumiv}}}%
  512.     \def\newblock{\hskip 0.11em \@plus 0.33em \@minus -0.07em}
  513.     \tolerance\@M \hyphenpenalty\@M \hbadness5000 \sfcode`\.=1000\relax}
  514. \if@nameyear
  515.   \def\@biblabel#1{}
  516. \else
  517.   \def\@biblabel#1{\hskip \z@ \@plus 1filll[#1]}
  518. \fi
  519. \newcount\@tempcntc
  520. \def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
  521.  \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do
  522.   {\@ifundefined
  523.    {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries ?}\@warning
  524.    {Citation `\@citeb' on page \thepage \space undefined}}%
  525.   {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}%
  526.    \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne
  527.     \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}%
  528.    \else
  529.     \advance\@tempcntb\@ne
  530.     \ifnum\@tempcntb=\@tempcntc
  531.     \else\advance\@tempcntb\m@ne\@citeo
  532.     \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}}
  533. \def\@citeo{\ifnum\@tempcnta>\@tempcntb\else\@citea\def\@citea{,}%
  534.  \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else
  535.   {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else \def\@citea{--}\fi
  536.    \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi}
  537. \@namedef{cv*}{\section*{Curriculum Vitae}\cv}
  538.  \def\cv{\hangindent=7pc \hangafter=-12 \parskip\bigskipamount \small}
  539. \def\footnote{\@ifnextchar[{\@xfootnote}{\refstepcounter
  540.    {\@mpfn}\xdef\@thefnmark{\thempfn}\@footnotemark\@footnotetext}}
  541. \def\footnotemark{\@ifnextchar[{\@xfootnotemark
  542.     }{\refstepcounter{footnote}\xdef\@thefnmark{\thefootnote}\@footnotemark}}
  543. \def\footnoterule{\kern-3\p@
  544.   \hrule \@width 3pc               % The \hrule has default \@height of 0.4pt.
  545.   \kern 2.6\p@}
  546. \def\thempfootnote{\alph{mpfootnote}}
  547. \def\mpfootnotemark{%
  548.   \@ifnextchar[{\@xmpfootnotemark}{\stepcounter{mpfootnote}%
  549.   \begingroup
  550.     \let\protect\noexpand
  551.     \xdef\@thefnmark{\thempfootnote}%
  552.   \endgroup
  553.   \@footnotemark}}
  554. \def\@xmpfootnotemark[#1]{%
  555.   \begingroup
  556.     \c@mpfootnote #1\relax
  557.     \let\protect\noexpand
  558.     \xdef\@thefnmark{\thempfootnote}%
  559.   \endgroup
  560.   \@footnotemark}
  561. \def\@mpmakefnmark{\,\hbox{$^{\mathrm{\@thefnmark}}$}}
  562. \long\def\@mpmakefntext#1{\noindent
  563.                      \hbox{$^{\mathrm{\@thefnmark}}$} #1}
  564. \def\@iiiminipage#1#2[#3]#4{%
  565.   \leavevmode
  566.   \@pboxswfalse
  567.   \setlength\@tempdima{#4}%
  568.   \def\@mpargs{{#1}{#2}[#3]{#4}}%
  569.   \setbox\@tempboxa\vbox\bgroup
  570.     \color@begingroup
  571.       \hsize\@tempdima
  572.       \textwidth\hsize \columnwidth\hsize
  573.       \@parboxrestore
  574.       \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
  575.       \let\@footnotetext\@mpfootnotetext
  576.       \let\@makefntext\@mpmakefntext
  577.       \let\@makefnmark\@mpmakefnmark
  578.       \let\@listdepth\@mplistdepth \@mplistdepth\z@
  579.       \@minipagerestore\global\@minipagetrue %% \global added 24 May 89
  580.       \everypar{\global\@minipagefalse\everypar{}}}
  581. \def\fn@presym{}
  582. \long\def\@makefntext#1{\noindent\hbox to 1em
  583.   {$^{\fn@presym\mathrm{\@thefnmark}}$\hss}#1}
  584. \def\@makefnmark{\,\hbox{$^{\fn@presym\mathrm{\@thefnmark}}$}\,}
  585. \setcounter{topnumber}{5}
  586. \def\topfraction{0.99}
  587. \def\textfraction{0.05}
  588. \def\floatpagefraction{0.9}
  589. \setcounter{bottomnumber}{5}
  590. \def\bottomfraction{0.99}
  591. \setcounter{totalnumber}{10}
  592. \def\dbltopfraction{0.99}
  593. \def\dblfloatpagefraction{0.8}
  594. \setcounter{dbltopnumber}{5}
  595. \long\def\@maketablecaption#1#2{\@captionsize
  596.   \hbox to \hsize{\parbox[t]{\hsize}{#1 \\ #2}}}
  597. \long\def\@makefigurecaption#1#2{\@captionsize
  598.   \vskip 8\p@
  599.   \setbox\@tempboxa\hbox{#1. #2}
  600.   \ifdim \wd\@tempboxa >\hsize              % IF longer than one line THEN
  601.     \unhbox\@tempboxa\par                   %   set as justified paragraph
  602.   \else                                     % ELSE
  603.     \hbox to\hsize{\hfil\box\@tempboxa\hfil}%   center single line.
  604.   \fi}
  605. \def\conttablecaption{\par \begingroup \@parboxrestore \normalsize
  606.   \@makecaption{\fnum@table\,---\,continued}{}\par
  607.   \vskip-1pc \endgroup}
  608. \def\contfigurecaption{\vskip-1pc \par \begingroup \@parboxrestore \normalsize
  609.   \@makecaption{\fnum@figure\,---\,continued}{}\par
  610.   \endgroup}
  611. \newcounter{figure}
  612. \def\thefigure{\@arabic\c@figure}
  613. \def\fps@figure{tbp}
  614. \def\ftype@figure{1}
  615. \def\ext@figure{lof}
  616. \def\fnum@figure{\figurename~\thefigure}
  617. \def\figure{%
  618. \let\@makecaption\@makefigurecaption
  619.   \let\contcaption\contfigurecaption \@float{figure}}
  620. \let\endfigure\end@float
  621. \@namedef{figure*}{%
  622. \let\@makecaption\@makefigurecaption
  623.   \let\contcaption\contfigurecaption \@dblfloat{figure}}
  624. \@namedef{endfigure*}{\end@dblfloat}
  625. \newcounter{table}
  626. \def\thetable{\@arabic\c@table}
  627. \def\fps@table{tbp}
  628. \def\ftype@table{2}
  629. \def\ext@table{lot}
  630. \def\fnum@table{\tablename~\thetable}
  631. \def\table{%
  632. \let\@makecaption\@maketablecaption
  633. \small
  634.   \let\footnoterule\relax
  635.   \let\contcaption\conttablecaption \@float{table}}
  636. \let\endtable\end@float
  637. \@namedef{table*}{%
  638. \let\@makecaption\@maketablecaption
  639. \small
  640.   \let\footnoterule\relax
  641.   \let\contcaption\conttablecaption \@dblfloat{table}}
  642. \@namedef{endtable*}{\end@dblfloat}
  643. \newtoks\t@glob@notes             % List of all notes
  644. \newtoks\t@loc@notes              % List of notes for one element
  645. \newcount\note@cnt                % Number of notes per element
  646. \newcounter{author}               % Author counter
  647. \newcount\n@author                % Total number of authors
  648. \def\n@author@{}                  % idem, read from .aux file
  649. \newcounter{collab}               % Collaboration counter
  650. \newcount\n@collab                % Total number of collaborations
  651. \def\n@collab@{}                  % idem, read from .aux file
  652. \newcounter{address}              % Address counter
  653. \newdimen\sv@mathsurround         % Dimen register to save \mathsurround
  654. \newcount\sv@hyphenpenalty        % Count register to save \hyphenpenalty
  655. \newcount\prev@elem \prev@elem=0  % Variables to keep track of
  656. \newcount\cur@elem  \cur@elem=0   % types of elements that are processed
  657. \chardef\e@title=1
  658. \chardef\e@subtitle=1
  659. \chardef\e@author=2
  660. \chardef\e@collab=3
  661. \chardef\e@address=4
  662. \newif\if@newelem                 % Switch to new type of element?
  663. \newif\if@firstauthor             % First author or collaboration?
  664. \newif\if@preface                 % If preface: omit history and abstract
  665. \newif\if@hasabstract             % If abstract / keywords: do not omit rules
  666. \newbox\fm@box                    % Box for collected front matter
  667. \newdimen\fm@size                 % Total height of \fm@box
  668. \newbox\t@abstract                % Box for abstract
  669. \newbox\t@keyword                 % Box for keyword abstract
  670.  \let\report@elt\@gobble
  671. \def\add@tok#1#2{\global#1\expandafter{\the#1#2}}
  672. \def\add@xtok#1#2{\begingroup
  673.   \no@harm
  674.   \xdef\@act{\global\noexpand#1{\the#1#2}}\@act
  675. \endgroup}
  676. \def\beg@elem{\global\t@loc@notes={}\global\note@cnt\z@}
  677. \def\@xnamedef#1{\expandafter\xdef\csname #1\endcsname}
  678. \def\no@harm{%
  679.   \let\\=\relax  \let\rm\relax
  680.   \let\ss=\relax \let\ae=\relax \let\oe=\relax
  681.   \let\AE=\relax \let\OE=\relax
  682.   \let\o=\relax  \let\O=\relax
  683.   \let\i=\relax  \let\j=\relax
  684.   \let\aa=\relax \let\AA=\relax
  685.   \let\l=\relax  \let\L=\relax
  686.   \let\d=\relax  \let\b=\relax \let\c=\relax
  687.   \let\bar=\relax
  688.   \def\protect{\noexpand\protect\noexpand}}
  689. \def\proc@elem#1#2{\begingroup
  690.     \no@harm                             % make a few instructions harmless
  691.     \let\thanksref\@gobble               % remove \thanksref from element
  692.     \@xnamedef{@#1}{#2}%                 % and store as \@#1
  693.   \endgroup
  694.   \prev@elem=\cur@elem                   % keep track of type of previous
  695.   \cur@elem=\csname e@#1\endcsname       % and current element
  696.   \expandafter\elem@nothanksref#2\thanksref\relax}
  697. \def\elem@nothanksref#1\thanksref{\futurelet\@peektok\elem@thanksref}
  698. \def\elem@thanksref{\ifx\@peektok\relax  % No more \thanksref, so now exit
  699.   \else \expandafter\elem@morethanksref \fi}
  700. \def\elem@morethanksref#1{\add@thanksref{#1}\elem@nothanksref}
  701. \def\add@thanksref#1{\global\advance\note@cnt\@ne
  702.   \ifnum\note@cnt>\@ne \add@xtok\t@loc@notes{\note@sep}\fi
  703.   \add@tok\t@loc@notes{\ref{#1}}}
  704. \def\note@sep{,}
  705. \def\thanks{\@ifnextchar[{\@tempswatrue
  706.   \thanks@optarg}{\@tempswafalse\thanks@optarg[]}}
  707. \def\thanks@optarg[#1]#2{\refstepcounter{footnote}\if@tempswa
  708.   \label{#1}\else\relax\fi
  709.   \add@tok\t@glob@notes{\footnotetext}%
  710.   \add@xtok\t@glob@notes{[\the\c@footnote]}%
  711.   \add@tok\t@glob@notes{{#2}}}
  712. \def\footnote{\@ifnextchar[{\@xfootnote}{\refstepcounter
  713.    {\@mpfn}\xdef\@thefnmark{\thempfn}\@footnotemark\@footnotetext}}
  714. \def\footnotemark{\@ifnextchar[{\@xfootnotemark
  715.     }{\refstepcounter{footnote}\xdef\@thefnmark{\thefootnote}\@footnotemark}}
  716. \def\footnoterule{\kern-3\p@
  717.   \hrule \@width 3pc               % The \hrule has default \@height of 0.4pt.
  718.   \kern 2.6\p@}
  719.  \let\report@elt\@gobble
  720. \def\frontmatter{%
  721.   \let\@corresp@note\relax
  722.   \global\t@glob@notes={}\global\c@author\z@
  723.   \global\c@collab\z@ \global\c@address\z@
  724.   \sv@mathsurround\mathsurround \m@th
  725.   \global\n@author=0\n@author@\relax
  726.   \global\n@collab=0\n@collab@\relax
  727.   \global\advance\n@author\m@ne   % In comparisons later on we need
  728.   \global\advance\n@collab\m@ne   % n@author-1 and n@collab-1
  729.   \global\@firstauthortrue        % set to false by first \author or \collab
  730.   \global\@hasabstractfalse       % Default:  no abstract or keywords
  731.   \global\@prefacefalse           %           not preface
  732.   \ifnum\@firstpage=\@lastpage
  733.     \gdef\@pagerange{\@pagenumprefix\@firstpage}
  734.   \else
  735.     \gdef\@pagerange{\@pagenumprefix\@firstpage--\@pagenumprefix\@lastpage}
  736.   \fi
  737.   \@ifundefined{RIfM@}{\global\let\vec\@bfvec}{\undo@AMS}%
  738.  \parskip 4\p@
  739.   \open@fm \ignorespaces}
  740. \def\preface{\@prefacetrue}
  741. \def\endfrontmatter{\global\n@author=\c@author
  742.   \global\n@collab=\c@collab \@writecount
  743.   \global\@topnum\z@
  744.   \thispagestyle{copyright}%            % Format rest of front matter:
  745.   \if@preface \else                     % IF not preface THEN
  746.   \history@fmt                          % print history (received, ...)
  747.   \newcount\c@sv@footnote
  748.   \global\c@sv@footnote=\c@footnote     % save current footnote number
  749.   \if@hasabstract                       % IF abstract/ keywords THEN
  750.    \vskip 24\p@ \@plus 6\p@ \@minus 3\p@      % Space above rule
  751.     \vskip 8\p@
  752.     \unvbox\t@abstract                  % print abstract, if any
  753.     \unvbox\t@keyword                   % Keyword abstract, if any
  754.     \vskip 10\p@
  755.   \fi                                   % FI
  756.   \dedicated@fmt                        % print dedication
  757.   \vskip 18\p@                           % Vertical space below frontmatter
  758.   \fi                                   % FI
  759.   \close@fm                             % Close front matter material.
  760.    \output@glob@notes  % Put notes at bottom of 1st page
  761.   \global\c@footnote=\c@sv@footnote     % restore footnote number
  762.   \global\@prefacefalse
  763.   \global\leftskip\z@                   % Restore the normal values of
  764.   \global\@rightskip\z@                 % \leftskip,
  765.   \global\rightskip\@rightskip          % \rightskip and
  766.   \global\mathsurround\sv@mathsurround  % \mathsurround.
  767.   \let\title\relax       \let\author\relax
  768.   \let\collab\relax      \let\address\relax
  769.   \let\frontmatter\relax \let\endfrontmatter\relax
  770.   \let\@maketitle\relax  \let\@@maketitle\relax
  771.   \normal@text}
  772. \let\maketitle\relax
  773. \newdimen\t@xtheight
  774. \t@xtheight\textheight \advance\t@xtheight-\splittopskip
  775. \def\open@fm{\global\setbox\fm@box=\vbox\bgroup
  776.   \hsize=\textwidth                         % Front matter is page-wide
  777.   \centering                                % and centered
  778.   \sv@hyphenpenalty\hyphenpenalty           % (save \hyphenpenalty)
  779.   \hyphenpenalty\@M}                        % and not hyphenated
  780. \def\close@fm{\egroup                       % close \vbox (\fm@box)
  781.   \fm@size=\dp\fm@box \advance\fm@size by \ht\fm@box
  782.   \@whiledim\fm@size>\t@xtheight \do{%
  783.     \global\setbox\@tempboxa=\vsplit\fm@box to \t@xtheight
  784.     \unvbox\@tempboxa \newpage
  785.     \fm@size=\dp\fm@box \advance\fm@size by \ht\fm@box}
  786.   \if@TwoColumn
  787.     \emergencystretch=1pc \twocolumn[\unvbox\fm@box]
  788.   \else
  789.     \unvbox\fm@box
  790.   \fi}
  791. \def\output@glob@notes{\bgroup
  792.   \the\t@glob@notes
  793.   \egroup}
  794. \def\justify@off{\let\\=\@normalcr
  795.   \leftskip\z@ \@rightskip\@flushglue \rightskip\@rightskip}
  796. \def\justify@on{\let\\=\@normalcr
  797.   \leftskip\z@ \@rightskip\z@ \rightskip\@rightskip}
  798. \def\normal@text{\global\let\\=\@normalcr
  799.   \global\leftskip\z@ \global\@rightskip\z@ \global\rightskip\@rightskip
  800.   \global\parfillskip\@flushglue}
  801. \def\@writecount{\write\@mainaux{\string\global
  802.   \string\@namedef{n@author@}{\the\n@author}}%
  803.   \write\@mainaux{\string\global\string
  804.   \@namedef{n@collab@}{\the\n@collab}}}
  805. \def\title#1{%
  806.   \beg@elem
  807.   \title@note@fmt                      % formatting instruction
  808.   \add@tok\t@glob@notes                % for \thanks commands
  809.     {\title@note@fmt}%
  810.   \proc@elem{title}{#1}%
  811.   \def\title@notes{\the\t@loc@notes}%  % store the notes of the title,
  812.   \title@fmt{\@title}{\title@notes}%   % print the title
  813.   \ignorespaces}
  814. \def\subtitle#1{%
  815.   \beg@elem
  816.   \proc@elem{subtitle}{#1}%
  817.   \def\title@notes{\the\t@loc@notes}%  % store the notes of the title,
  818.   \subtitle@fmt{\@subtitle}{\title@notes}% print the title
  819.   \ignorespaces}
  820. \newdimen \@logoheight \@logoheight 5pc
  821. \def\@Lhook{\vrule \@height \@logoheight \@width \z@ \vrule \@height 10\p@ \@width 0.2\p@ \vrule \@height 0.2\p@ \@width 10pt}
  822. \def\@Rhook{\vrule \@height 0.2\p@ \@width 10\p@ \vrule \@height 10\p@ \@width 0.2\p@ \vrule \@height \@logoheight \@width \z@}
  823. \def\title@fmt#1#2{%
  824. \@ifundefined{@runtitle}{\gdef\@runtitle{#1}}{}%
  825.  \vspace*{12pt}             % Vertical space above title
  826.   {\@titlesize #1\,\hbox{$^{#2}$}\par}%
  827.  \vskip 24\p@                   % Vertical space below title
  828.   }
  829. \def\subtitle@fmt#1#2{%               % No vertical space above sub-title
  830.   {\@titlesize #1\,\hbox{$^{#2}$}}\par}
  831. \def\title@note@fmt{\def\thefootnote{\fnstar{footnote}}}
  832. \def\author{\@ifnextchar[{\author@optarg}{\author@optarg[]}}
  833. \def\author@optarg[#1]#2{\stepcounter{author}%
  834.   \beg@elem
  835.   \@for\@tempa:=#1\do{\expandafter\add@thanksref\expandafter{\@tempa}}%
  836.   \report@elt{author}\proc@elem{author}{#2}%
  837.   \author@fmt{\the\c@author}{\the\t@loc@notes}{\@author}}% removed by SP \ignorespaces
  838. \def\author@fmt#1#2#3{\@newelemtrue
  839.   \if@firstauthor
  840.   \first@author \global\@firstauthorfalse \fi
  841.   \ifnum\prev@elem=\e@author \global\@newelemfalse \fi
  842.   \if@newelem \author@fmt@init \fi
  843.   \edef\@tempb{#2}\ifx\@tempb\@empty
  844.     \hbox{{\author@font #3}}\else
  845.     \hbox{{\author@font #3}\,$^{\mathrm{#2}}$}%
  846.   \fi}
  847. \def\first@author{\author@note@fmt  % re-define \thefootnote as
  848.                                     % appropriate for author/address
  849.   \add@tok\t@glob@notes
  850.     {\author@note@fmt\@corresp@note}}%
  851. \def\author@fmt@init{%
  852.   \par
  853.   \vskip 8\p@ \@plus 4\p@ \@minus 2\p@
  854.   \@authorsize
  855.   \leavevmode}                        % Vertical space above author list
  856.  \def\and{\unskip~and~}
  857. \def\collab{\@ifstar{\collab@arg}{\collab@arg}}
  858. \let\collaboration=\collab
  859. \def\collab@arg#1{\stepcounter{collab}%
  860.   \if@firstauthor \first@collab \global\@firstauthorfalse \fi
  861.   \beg@elem
  862.   \proc@elem{collab}{#1}%
  863.   \collab@fmt{\the\c@collab}{\the\t@loc@notes}{\@collab}%
  864.   \ignorespaces}
  865. \def\collab@fmt#1#2#3{\@newelemtrue
  866.   \ifnum\prev@elem=\e@collab \global\@newelemfalse \fi
  867.   \if@newelem \collab@fmt@init \fi
  868.   \par                                 % Start new paragraph
  869.   {\large #3\,$^{\mathrm{#2}}$}}
  870. \def\first@collab{
  871.   \collab@note@fmt                     % re-define \thefootnote as
  872.   \add@tok\t@glob@notes                % appropriate for collab/address
  873.     {\collab@note@fmt}}%
  874. \def\collab@fmt@init{\vskip 1em}       % Vertical space above list
  875. \def\author@note@fmt{\setcounter{footnote}{0}%
  876.   \def\thefootnote{\xarabic{footnote}}}
  877. \let\collab@note@fmt=\author@note@fmt
  878. \def\xarabic#1{%
  879.   \expandafter\expandafter\expandafter\ifnum\expandafter\the\@nameuse{c@#1}<0
  880.   *\else\arabic{#1} \fi}
  881. \def\address{\@ifstar{\address@star}%
  882.   {\@ifnextchar[{\address@optarg}{\address@noptarg}}}
  883. \def\address@optarg[#1]#2{\refstepcounter{address}%
  884.   \beg@elem
  885.   \report@elt{address}\proc@elem{address}{#2}%
  886.   \address@fmt{\the\c@address}{\the\t@loc@notes}{\@address}\label{#1}%
  887.   \ignorespaces}
  888. \def\address@noptarg#1{\refstepcounter{address}%
  889.   \beg@elem
  890.   \proc@elem{address}{#1}%
  891.   \address@fmt{\z@}{\the\t@loc@notes}{\@address}%
  892.   \ignorespaces}
  893. \def\address@star#1{%
  894.   \beg@elem
  895.   \proc@elem{address}{#1}%
  896.   \address@fmt{\m@ne}{\the\t@loc@notes}{\@address}%
  897.   \ignorespaces}
  898. \def\theaddress{\alph{address}}
  899. \def\address@fmt#1#2#3{\@newelemtrue
  900.   \ifnum\prev@elem=\e@address \@newelemfalse \fi
  901.   \if@newelem \address@fmt@init \fi
  902.   \noindent \bgroup \@addressstyle
  903.   \ifnum#1=\z@
  904.     #3\,$^{\mathrm{#2}}$\space%
  905.   \else
  906.     \ifnum#1=\m@ne
  907.       $^{\phantom{\mathrm{\theaddress}}}$\space #3\,$^{\mathrm{#2}}$%
  908.     \else
  909.       $^{\mathrm{\theaddress}}$\space #3\,$^{\mathrm{#2}}$%
  910.     \fi
  911.   \fi
  912.   \par \egroup}
  913. \def\address@fmt@init{%
  914.   \par                                % Start new paragraph
  915.    \vskip 6\p@ \@plus 3\p@ \@minus 1.5pt}
  916. \def\abstract{\@ifnextchar[{\@abstract}{\@abstract[]}}
  917. \def\@abstract[#1]{%
  918.   \global\@hasabstracttrue
  919.   \hyphenpenalty\sv@hyphenpenalty     % restore \hyphenpenalty
  920.   \global\setbox\t@abstract=\vbox\bgroup
  921.    \small
  922.    \hbox to \textwidth\bgroup\hfill\begin{minipage}{.8\textwidth}
  923.  \abstractname
  924.   \ignorespaces}
  925.  \def\endabstract{\end{minipage}\hfill\egroup\egroup}
  926. \def\keyword{%
  927.   \global\@hasabstracttrue             % Implies rules are to be printed
  928.   \hyphenpenalty\sv@hyphenpenalty      % restore \hyphenpenalty
  929.   \def\sep{\unskip, }                  % separator for multiple keywords
  930.   \def\MSC{\par\leavevmode\hbox {\it 1991 MSC:\ }}%
  931.   \def\PACS{\par\leavevmode\hbox {\it PACS:\ }}%
  932.   \global\setbox\t@keyword=\vbox\bgroup
  933.    \hbox to \textwidth\bgroup\hfill\begin{minipage}{.8\textwidth}
  934.   \@keywordsize 
  935.   \parskip\z@
  936.   \vskip 10\p@ \@plus 2\p@ \@minus 2\p@       % One line of space above keywords.
  937.   \noindent \@keywordheading
  938.   \justify@off                         % Keywords are not justified.
  939.   \ignorespaces}
  940.  \def\endkeyword{\end{minipage}\hfill\egroup\egroup}
  941. \def\runtitle#1{\gdef\@runtitle{#1}}
  942. \def\runauthor#1{\gdef\@runauthor{#1}} \def\@runauthor{}
  943. \def\journal#1{\gdef\@journal{#1}}
  944. \def\volume#1{\gdef\@volume{#1}}       \def\@volume{0}
  945. \def\issue#1{\gdef\@issue{#1}}         \def\@issue{0}
  946. \newcount\@pubyear
  947. \newcount\@copyear
  948. \@pubyear=\number\year
  949. \@copyear\@pubyear \advance\@copyear-1900
  950. \def\pubyear#1{\global\@pubyear#1
  951.   \global\@copyear\@pubyear \global\advance\@copyear-1900
  952.   \ignorespaces}
  953. \def\firstpage#1{\def\@tempa{#1}\ifx\@tempa\@empty\else
  954.   \gdef\@firstpage{#1}%
  955.   \global\c@page=#1 \ignorespaces\fi}
  956. \def\@firstpage{1}
  957. \def\@lastpage{\@ifundefined{r@LastPage}{0}{\pageref{LastPage}}}
  958. \def\lastpage#1{\def\@tempa{#1}\ifx\@tempa\@empty\else
  959.   \gdef\@lastpage{#1}\ignorespaces\fi
  960.   }
  961. \AtEndDocument{%
  962.    \clearpage
  963.    \addtocounter{page}{-1}%
  964.    \immediate\write\@auxout{\string
  965.    \newlabel{LastPage}{{}{\thepage}}}%
  966.    \addtocounter{page}{1}%
  967. }
  968. \def\date#1{\gdef\@date{#1}}                  \def\@date{\today}
  969. \def\aid#1{}
  970. \def\ssdi#1#2{}
  971. \def\received#1{\def\@tempa{#1}\ifx\@tempa\@empty\else\gdef\@received{#1}\fi}
  972.   \def\@received{\relax}
  973. \def\revised#1{\def\@tempa{#1}\ifx\@tempa\@empty\else\gdef\@revised{#1}\fi}
  974.   \def\@revised{\relax}
  975. \def\accepted#1{\def\@tempa{#1}\ifx\@tempa\@empty\else\gdef\@accepted{#1}\fi}
  976.   \def\@accepted{\relax}
  977. \def\communicated#1{\def\@tempa{#1}\ifx\@tempa\@empty\else\gdef\@communicated{#1}\fi}
  978.   \def\@communicated{\relax}
  979. \def\dedicated#1{\def\@tempa{#1}\ifx\@tempa\@empty\else\gdef\@dedicated{#1}\fi}
  980.   \def\@dedicated{\relax}
  981. \def\presented#1{\def\@tempa{#1}\ifx\@tempa\@empty\else\gdef\@presented{#1}\fi}
  982.   \def\@presented{\relax}
  983. \def\articletype#1{\gdef\@articletype{#1}}
  984.   \@ifundefined{@articletype}{\def\@articletype{}}{}
  985. \def\received@prefix{Received~}
  986. \def\revised@prefix{; revised~}
  987. \def\accepted@prefix{; accepted~}
  988. \def\communicated@prefix{; communicated~by~}
  989. \def\history@prefix{}
  990. \def\received@postfix{}
  991. \def\revised@postfix{}
  992. \def\accepted@postfix{}
  993. \def\communicated@postfix{}
  994. \def\history@postfix{}
  995. \def\empty@data{\relax}
  996. \def\history@fmt{%
  997.   \bgroup
  998.   \@historysize
  999.   \vskip 6\p@ \@plus 2\p@ \@minus 1\p@         % Vertical space above history
  1000.   \ifx\@received\empty@data \else       % If there is no \received,
  1001.                                         % do not print anything
  1002.     \leavevmode
  1003.     \history@prefix
  1004.     \received@prefix\@received \received@postfix%
  1005.     \ifx\@revised\empty@data \else
  1006.       \revised@prefix\@revised \revised@postfix%
  1007.     \fi
  1008.     \ifx\@accepted\empty@data \else
  1009.       \accepted@prefix\@accepted \accepted@postfix%
  1010.     \fi
  1011.     \ifx\@communicated\empty@data \else
  1012.       \communicated@prefix\@communicated \communicated@postfix%
  1013.     \fi
  1014.     \history@postfix
  1015.   \fi
  1016.   \par \egroup}
  1017. \def\dedicated@fmt{%
  1018.   \ifx\@dedicated\empty@data \else
  1019.     \vskip 4\p@ \@plus 3\p@
  1020.     \normalsize\it\centering \@dedicated
  1021.     \fi}
  1022. \def\@ialph#1{\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or
  1023.   k\or \ell\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or
  1024.   y\or z\or aa\or ab\or ac\or ad\or ae\or af\or ag\or ah\or ai\or aj\or
  1025.   ak\or a\ell\or am\or an\or ao\or ap\or aq\or ar\or as\or at\or au\or av\or
  1026.   aw\or ay\or az\or ba\or bb\or bc\or bd\or be\or bf\or bg\or bh\or bi\or
  1027.   bj\or bk\or b\ell\or bm\or bn\or bo\or bp\or bq\or br\or bs\or bt\or
  1028.   bu\or bw\or bx\or by\or bz\or ca\or cb\or cc\or cd\or ce\or cf\or cg\or
  1029.   ch\or ci\or cj\or ck\or c\ell\or cm\or cn\or co\or cp\or cq\or cr\or
  1030.   cs\or ct\or cu\or cw\or cx\or cy\or cz\else\@ctrerr\fi}
  1031. \def\fnstar#1{\@fnstar{\@nameuse{c@#1}}}
  1032. \def\@fnstar#1{\ifcase#1\or
  1033.     \hbox{$\star$}\or
  1034.     \hbox{$\star\star$}\or
  1035.     \hbox{$\star\star\star$}\or
  1036.     \hbox{$\star\star\star\star$}\or
  1037.     \hbox{$\star\star\star\star\star$}\or
  1038.     \hbox{$\star\star\star\star\star\star$}
  1039.   \else
  1040.     \@ctrerr
  1041.   \fi
  1042.   \relax}
  1043. \mark{{}{}}   % Initializes TeX's marks
  1044. \def\ps@plain{\let\@mkboth\@gobbletwo
  1045.  \def\@oddhead{}%
  1046.  \def\@evenhead{}%
  1047.  \def\@oddfoot{\hfil {\rmfamily\thepage} \hfil}%
  1048.  \let\@evenfoot\@oddfoot}
  1049. \def\@copyright{\@issn/\the\@copyear/\$\@price\ $\copyright$\ \the\@pubyear\
  1050.   Elsevier Science \@company{} All  rights reserved}
  1051. \def\@jou@vol@pag{\@journal\ \@volume\ (\the\@pubyear)\ \@pagerange}
  1052. \def\sectionmark#1{}
  1053. \def\subsectionmark#1{}
  1054. \let\@j@v@p\@jou@vol@pag    % long journal title appears in reprint line
  1055. \let\@@j@v@p\@jou@vol@pag   % long journal title appears in running headline
  1056. \def\sectionmark#1{}
  1057. \def\subsectionmark#1{}
  1058. \def\ps@copyright{\let\@mkboth\@gobbletwo
  1059.   \def\@oddhead{}%
  1060.   \let\@evenhead\@oddhead
  1061.   \def\@oddfoot{\small\slshape
  1062.     \def\@tempa{0}
  1063.     \ifx\@volume\@tempa
  1064.       Preprint submitted to \@journal\hfil\@date\/%
  1065.     \else
  1066.       Article published in \@jou@vol@pag\hfil\hbox{}\fi}%
  1067.   \let\@evenfoot\@oddfoot
  1068. }
  1069. \let\ps@noissn\ps@empty
  1070. \let\ps@headings\ps@plain
  1071. \def\today{\number\day\space\ifcase\month\or
  1072.   January\or February\or March\or April\or May\or June\or
  1073.   July\or August\or September\or October\or November\or December\fi
  1074.   \space\number\year}
  1075. \def\nuc#1#2{\relax\ifmmode{}^{#1}{\protect\text{#2}}\else${}^{#1}$#2\fi}
  1076. \def\itnuc#1#2{\setbox\@tempboxa=\hbox{\scriptsize\it #1}
  1077.   \def\@tempa{{}^{\box\@tempboxa}\!\protect\text{\it #2}}\relax
  1078.   \ifmmode \@tempa \else $\@tempa$\fi}
  1079. \let\old@vec\vec % save old definition of \vec
  1080. \def\pol#1{\old@vec{#1}}
  1081. \def\@bfvec#1{\boldsymbol{#1}}
  1082. \def\@pmbfvec#1{\pmb{#1}}
  1083. \def\undo@AMS{\global\let\vec\@bfvec}
  1084. \def\half{{\textstyle {1\over2}}}
  1085. \def\threehalf{{\textstyle {3\over2}}}
  1086. \def\quart{{\textstyle {1\over4}}}
  1087. \def\d{\,\mathrm{d}}
  1088. \def\e{\mathop{\mathrm{e}}\nolimits}
  1089. \def\int{\intop}
  1090. \def\oint{\ointop}
  1091. \newbox\slashbox \setbox\slashbox=\hbox{$/$}
  1092. \newbox\Slashbox \setbox\Slashbox=\hbox{\large$/$}
  1093. \def\pFMslash#1{\setbox\@tempboxa=\hbox{$#1$}
  1094.   \@tempdima=0.5\wd\slashbox \advance\@tempdima 0.5\wd\@tempboxa
  1095.   \copy\slashbox \kern-\@tempdima \box\@tempboxa}
  1096. \def\pFMSlash#1{\setbox\@tempboxa=\hbox{$#1$}
  1097.   \@tempdima=0.5\wd\Slashbox \advance\@tempdima 0.5\wd\@tempboxa
  1098.   \copy\Slashbox \kern-\@tempdima \box\@tempboxa}
  1099. \def\FMslash{\protect\pFMslash}
  1100. \def\FMSlash{\protect\pFMSlash}
  1101. \mathchardef\Gamma="0000
  1102. \mathchardef\Delta="0001
  1103. \mathchardef\Theta="0002
  1104. \mathchardef\Lambda="0003
  1105. \mathchardef\Xi="0004
  1106. \mathchardef\Pi="0005
  1107. \mathchardef\Sigma="0006
  1108. \mathchardef\Upsilon="0007
  1109. \mathchardef\Phi="0008
  1110. \mathchardef\Psi="0009
  1111. \mathchardef\Omega="000A
  1112. \mathchardef\varGamma="0100
  1113. \mathchardef\varDelta="0101
  1114. \mathchardef\varTheta="0102
  1115. \mathchardef\varLambda="0103
  1116. \mathchardef\varXi="0104
  1117. \mathchardef\varPi="0105
  1118. \mathchardef\varSigma="0106
  1119. \mathchardef\varUpsilon="0107
  1120. \mathchardef\varPhi="0108
  1121. \mathchardef\varPsi="0109
  1122. \mathchardef\varOmega="010A
  1123.   \def\Cset{\Bbb{C}}
  1124.   \def\Hset{\Bbb{H}}
  1125.   \def\Nset{\Bbb{N}}
  1126.   \def\Qset{\Bbb{Q}}
  1127.   \def\Rset{\Bbb{R}}
  1128.   \def\Zset{\Bbb{Z}}
  1129. \if@TwoColumn
  1130.   \adjdemerits=100
  1131.   \linepenalty=100
  1132.   \doublehyphendemerits=5000        % experimental (1993-12-14)
  1133.   \emergencystretch=1.6pc
  1134.   \spaceskip=0.3em \@plus 0.17em \@minus 0.12em
  1135. \fi
  1136. \ps@headings                                % 'headings' page style
  1137. \pagenumbering{arabic}                      % Arabic page numbers
  1138. \def\thepage{\@pagenumprefix\arabic{page}}  % preceded by \@pagenumprefix
  1139. \InputIfFileExists{\@shortjid.cfg}{}{}
  1140. \endinput
  1141. %% 
  1142. %% End of file `eslart.cls'.
  1143.